前面列舉了幾個馬達,無非要讓您瞭解,不同的馬達有不同的調速方式,而不是像PC散熱風扇一樣是固定模式的。
我們透過常用的調速模組,可以大略的估計這些風扇的調速方式:
實作上也非常簡單,使用 Micropython 的 PWM 即可,調整的方法請您參閱第15天的內容:15.PWM (Pulse-width modulation) 模組,若是使用無源蜂鳴器,發出聲音也是可以使用 PWM 來調整發聲頻率,以 duty 來調整發聲大小,這些程式碼我就不再解釋了,我們在後天會再詳細的解說組裝好起來的完整風扇控制程式。
倒是 Timer 也可以控制頻率,我們以昨天第四個馬達爲例,按照廠家的說明,控制頻率在 50Hz ~ 500Hz 頻率越高,經由實驗 在 50Hz ~ 400Hz 之間可以穩定控制風扇,超過 400Hz 則轉速過高噪聲太大!!!
部分程式碼如下:
t0 = Timer(-1) # software timer
def toogle_speed(t):
speed_ctl.value(not speed_ctl.value())
def change_speed(speed):
global t0
t0.init(freq=speed*2*50, mode=Timer.PERIODIC, callback=toogle_speed)
......
While True:
...
if (fan_on == True):
if (ir_code_new == SPD_UP): # increase speed
speed += 1
if (speed > 8): speed = 8
change_speed(speed)
elif (ir_code_new == SPD_DN): #decrease speed
speed -= 1
if (speed < 0): speed = 0
change_speed(speed)
...
......